Skip to content

Conversation

@arnaud-lebreton-rofim
Copy link
Contributor

@arnaud-lebreton-rofim arnaud-lebreton-rofim commented Sep 10, 2025

What is this PR doing?

Hi there,

We at Rofim, have been using Vonage as video meeting solution in our application for some time.
Initially, we implemented our own service with the @vonage/video-express library.
Recently, we forked this vonage-video-react-app project and, with a few tweaks, were able to customize it to meet our needs.

However, there’s one key feature we believe would make the forking process (such as pulling future updates) much smoother: internationalization.

As a multilingual platform, we currently provide our users with an interface in six languages, so we also need to localize our fork of Vonage accordingly.

That’s why we’re excited to submit this PR, which introduces react-i18next for translations.

The main changes include:

  • Replacing hard-coded strings with translation keys.

  • Moving certain constants into translation files.

  • we reworked the date-service to leverage JavaScript’s built-in locale formatting:
    Mon → lun
    9 PM → 21:00

  • Adding new languages easily with config files

We kept the existing test suite intact to ensure no regressions.

We’re really happy to share this PR with you, and we’d be glad to hear any feedback or suggestions you may have.

How should this be manually tested?

What are the relevant tickets?

A maintainer will add this ticket number.

Resolves VIDSOL-16

Checklist

[x] Branch is based on develop (not main).
[ ] Resolves a Known Issue.
[ ] If yes, did you remove the item from the docs/KNOWN_ISSUES.md?
[ ] Resolves an item reported in Issues.
If yes, which issue? Issue Number?

@cpettet cpettet changed the title Implement internationalization with react-i18next VIDSOL-16: Localization Support (Implement internationalization with react-i18next) Sep 10, 2025
Copy link
Contributor

@cpettet cpettet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @arnaud-lebreton-rofim,
Thanks for opening this PR! Right now, the branch is coming from your fork, which prevents parts of our CI from running (integration tests, some security scans). Could you please recreate this PR from a branch on this repository instead of your fork? That way, our checks will run automatically.

Also, the PR looks good, just left a few nits but nothing is blocking aside from the CI. Thanks again for contributing!

const { forceMute } = useSessionContext();
const [isModalOpen, setIsModalOpen] = useState<boolean>(false);

const muteParticipantText: DialogTexts = {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit, could we revert the rename here?

contents: `Mute ${stream?.name} for everyone in the call? Only ${stream?.name} can unmute themselves.`,
primaryActionText: 'Mute',
secondaryActionText: 'Cancel',
const participants: MutingDialogTexts = {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit, could we revert the variable name change?

"screenSharing.dialog.title": "Do you want to share your screen?",
"screenSharing.title.start": "Start screen share",
"screenSharing.title.stop": "Stop screen share",
"screenSharing.tooltip.ariaLabel": "add",
Copy link
Contributor

@cpettet cpettet Sep 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit. Since we're in the area, could we change this aria-label to be more descriptive? Maybe "Start or stop screen share" or similar.

Suggested change
"screenSharing.tooltip.ariaLabel": "add",
"screenSharing.tooltip.ariaLabel": "Start or stop screen share",

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Excellent refactoring! 🎉

@arnaud-lebreton-rofim
Copy link
Contributor Author

hi @cpettet,
i just made the fixes according to your review.
But i'm not sure to follow you about the branch workflow you're suggesting.

Currently i cannot push a branch in this repo.
ERROR: Permission to Vonage/vonage-video-react-app.git denied to arnaud-lebreton-rofim.

cpettet
cpettet previously approved these changes Sep 12, 2025
Copy link
Contributor

@cpettet cpettet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM Great job! :shipit:

@cpettet
Copy link
Contributor

cpettet commented Sep 12, 2025

Hi @arnaud-lebreton-rofim ,
Oh, gotcha, it must be because you're outside of our org. I've let our SDET team know, and they'll handle this after another approval. They'll likely reopen a PR using your commits to test on our GHA runners or just run the missed tests locally.

Thanks!

behei-vonage
behei-vonage previously approved these changes Sep 12, 2025
Copy link
Contributor

@behei-vonage behei-vonage left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! 🚀

@arnaud-lebreton-rofim
Copy link
Contributor Author

Hi @cpettet,
LGTM, thx

@cpettet
Copy link
Contributor

cpettet commented Sep 15, 2025

Hi @arnaud-lebreton-rofim ,
Thanks for your patience through this, but we have one more ask - could you sign your commit so that it shows up as Verified? You'll need to setup GPG or SSH signing through GitHub, before re-signing your last commit.

Copy link
Contributor

@cpettet cpettet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM Great job! :shipit:

@dwivedisachin
Copy link
Contributor

Tested LGTM!! Also checked the integration tests, Looks good!! 🚀

@dwivedisachin dwivedisachin merged commit f1f8e5a into Vonage:develop Sep 18, 2025
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants